package com.atguigu.crowd.constant;

import java.util.HashSet;
import java.util.Set;

/**
 * information
 * Created by Administrator on 2020/4/2.
 */
public class AccessPassResource {

    public static final Set<String> PASS_RES_SET=new HashSet<>();
    static {
        PASS_RES_SET.add("/");
        PASS_RES_SET.add("/auth/do/member/register");
        PASS_RES_SET.add("/auth/member/send/short/message.json");
        PASS_RES_SET.add("/auth/member/to/reg/page");
        PASS_RES_SET.add("/auth/member/to/login/page");
        PASS_RES_SET.add("/auth/member/do/login");
        PASS_RES_SET.add("/auth/member/logout");
    }
    public static final Set<String> STATIC_RES_SET = new HashSet<>();
    static {
        STATIC_RES_SET.add("bootstrap");
        STATIC_RES_SET.add("css");
        STATIC_RES_SET.add("fonts");
        STATIC_RES_SET.add("img");
        STATIC_RES_SET.add("jquery");
        STATIC_RES_SET.add("layer");
        STATIC_RES_SET.add("script");
        STATIC_RES_SET.add("ztree");
    }

    /**
     * 用于判断某个servletPath值是否对应一个静态资源
     * @param servletPath
     * @return
     *  ture：是静态资源
     *  false：不是静态资源
     */
    public static boolean judgeCurrentServletPathWetherStaticResource(String servletPath){
        //1.判断当前传过来的路劲是否有效
        if (servletPath == null || servletPath.length()==0){
            throw new RuntimeException(CrowdConstant.MESSAGE_STRING_INVALIDATE);
        }
        //2.根据“/”拆分ServletPath字符串
        String[] split = servletPath.split("/");
        //3.考虑到第一个“/”左边经过拆分后得到一个空字符串，所以需要使用下标去取第二个字段
        String firstLevelPath = split[1];
        //4.判断是否在集合中
        return STATIC_RES_SET.contains(firstLevelPath);
    }

    /*测试方法
    public static void main(String[] args) {
        String servletPath = "/css/bbb/ccc";
        boolean result =judgeCurrentServletPathWetherStaticResource(servletPath);
        System.out.println(result);

    }
    */
}
